package basic.kotlin
/**
 * 智能识别类型转换
 * 安全的kotlin写法
 */
fun main(args: Array<String>) {
    val p: Parent = Parent()
    val c: Parent = Child()

    if (c is Child)   // 类型相等,就可以执行方法体的内容
        println(c.name)

    val child: Child? = p as? Child   // 转换失败不让其抛出异常，返回个null ，不带？就会和java原生语法一样抛出异常
    println(child)

    val string: String? = "Hello"
    if(string != null)
        println(string.length)  // 智能甄别 ,前边判断了，后边不用判断了
}